An integrated development environment is used by programmers to develop a software application. The integrated development environment provides a set of resources that enables a programmer to create, edit, compile, debug and/or test source code written in multiple programming languages. The resources may include compilers, debuggers, editors, and/or libraries that facilitate the development of a software application within a single development environment. Additional tools or extensions may be plugged into the integrated development environment in order to extend the capabilities of the integrated development environment. These tools may perform code refactoring, static code analysis, and other functions not offered by the integrated development environment. An extension tool may analyze one or more of the source code files in order to improve the structural design of the interrelated programs. Such improvements may produce more efficiently structured source code that requires less memory or execution time thereby improving the performance of the software application. However, the tools have limited access to the internal resources that the integrated development environment utilizes which may be beneficial for an extension tool.